import { def } from "./utils";

// vue对于Array.prototype上的push等方法进行了重写，从而实现对数组的操作也可以检测到
// push, pop, unshift, shift, splice, sort, reverse

let arrayMethods = Object.create(Array.prototype);
let methodsNeedChange = ['push', 'pop', 'unshift', 'shift', 'splice', 'sort', 'reverse'];

methodsNeedChange.forEach(methodName => {
    const originalMethod = Array.prototype[methodName];

    // 定义新的方法
    def(arrayMethods,methodName,function(){
        console.log('你正在修改数组');
        originalMethod.apply(this,arguments);
    },false)
});

export default arrayMethods;